23

» WarCraft 3 / Источник частиц

Похожие вопросы:

ответ
Почитай статью об эмиттерах. Скорее всего тебе нужно настроить видимость по кадрам.
ответ
закрыт по таймауту
ответ
nvc123:
это понятно, мысли вслух просто.
так-то уже ответили, что к чему, что если больше 1 модели не вписать - значит никак
ответ
~8gabriel8:
Очередной вопрос, где не приложен файл. Тебе какой ответ нужен? Что надо статьи читать и больше в w3me и mdlvis практиковаться, либо конкретное решение проблемы с твоим портретом демон хантера?

23

» WarCraft 3 / Кампания

Похожие вопросы:

ответ
avuremybe, с буфером игры (кэш) можно работать так же как с хэш таблицей
FrigatPlay, в буфер игры можно сохранять не только юнитов но и предметы
просто перебираем циклом все предметы и сохраняем в кэш
а потом в следующей карте извлекаем их из кэша
ответ
Dima131, импортируешь текстуру, а затем прописываешь ей путь, как у текстуры, которую использует модель
ответ
Ошибка в коде, jass работает везде. pro100master, пишет бред, ибо незнает что все карты для warcraft 3 имеют сценарий на Jass, т.к все ваши триггеры в итоге преобразуются в jass и хранятся в war3map.j, тоже самое и с АИ, которое для кампаний изначально написано на jass и прекрасно работает.
Смотрите где у вас ошибки, cjass\vjass интерпретаторы могут не верно работать с картами кампаний, пробуйте написать код на чистом jass без надстроек.
ответ
Воу-воу, полегче, ты многовато инфы дал. А если серьёзно, то это, скорее всего, Союз Существ.

23

» WarCraft 3 / Помогите найти наработку

Похожие вопросы:

ответ
я нашел примерно что хочу но не могу сделать чтобы юнит мог наносить урон всем кто попадает в область удара(

23

» WarCraft 3 / Warcraft

Похожие вопросы:

ответ
Audes, в Warcraft 3 используется свой движок, написанный Blizzard и он находится в закрытом доступе.
ответ
HMODULE address_StormBase;
uintptr_t address_OpenArchive;

template <typename ReturnType, typename FPType, typename A0, typename A1, typename A2, typename A3>
inline ReturnType std_call(FPType fp, A0 a0, A1 a1, A2 a2, A3 a3)
{
	typedef ReturnType(__stdcall *TFPAeroFunction)(A0 a0, A1 a1, A2 a2, A3 a3);
	return ((TFPAeroFunction)fp)(a0, a1, a2, a3);
}

int SFile_OpenArchive(const char* archiveName, DWORD dwPriority, DWORD dwFlags, HANDLE* pArchiveHandle)
{
	return std_call<int>(address_OpenArchive, archiveName, dwPriority, dwFlags, pArchiveHandle);
}

uint32_t mpqLoadPriority = 15;
void OpenArchive(const std::string& fileName, HANDLE* hMpq)
{
	SFile_OpenArchive(fileName.c_str(), mpqLoadPriority, 0, hMpq);
	mpqLoadPriority++;
}

void main()
{
	address_StormBase = GetModuleHandle("Storm.dll");
	address_OpenArchive = (uintptr_t)GetProcAddress(address_StormBase, "266");

	HANDLE myMpqHandle;
	OpenArchive("MyArchive.mpq", &myMpqHandle);
}
ответ
Нормально экспортирую неодексом из восьмого и одиннадцатого макса. Экспортирует статичную модель? Перед экспортом нужно ведь выделить не только саму модельку, но ещё и кости.
ответ
Закрыто.

23

» WarCraft 3 / Модель

Похожие вопросы:

ответ
Поиск по сайту, если не нашлось, сперва сюда:
Потом сюда:

В следующий раз за такие темы будут варны.
ответ
В действиях "Анимация" есть изменение размера юнита. Ещё есть способности, меняющие размер. Например, жажда крови.
ответ
Cinos, но я же знаю что он столько весить на одних вершинах не должен.
Maniac_91, если проблема не решится я его еще больше ужму.
Короче я тот кирпич все таки был слишком кривым да и очень странным.
Вот простенький прямоугольник с закругленными краями может сойти за кирпич и весом всего то 4 кб.

23

» WarCraft 3 / Иконка героя

Похожие вопросы:

ответ
Ой, нашёл нужный триггер))))
Всем спасибо за внимание =)
ответ
SomeFire:
Fa1korn, тебе нужно удалять не плюсик, а героя. Т.е. создал плюсик, дропнул героя, создал героя.Ну или сначала дропнул героя, а потом создал плюсик. Главное, чтобы герой был создан после плюсика.Только так можно героя поставить выше плюсика. А если не хочешь париться - убивай плюсик и воскрешай когда надо.
С твоей подсказкой до меня дошло, изначально в моей карте герой принадлежал нейтралам, а потом меняет владельца на игрока красного. Получается по счету у игрока нейтральный-пассивный он может быть 5, может быть 27, в зависимости от числа героев, но точно не первый. И после смены владельца его номер таким и и остается. А плюсик я создаю для красного игрока, т.е. он становится первым, т.к. место №1 свободно. Решается это элементарно - плюс создается сначала для нейтрально-пассивного, а затем меняется владелец. Итого плюс у нас под номером 2 )
Melissa:
Возможно нужна небольшая задержка , что я и посоветовал выше.
Нет, с этим всё в порядке, это такая специфика в моей мапе, я не учёл, что изначально все герои нейтральные, а потом меняют владельца...
ответ
UI\MiniMap\MiniMap-Hero.mdx, Эксперементируй.
ответ
Просто выполни на триггерах функцию call remove unit ( в качестве юнита укажи твоего героя и картинка изчезнет вместе с умершим)
ответ
ну попробуй так
перед созданием сбрось флаг
set a=GetUnitUIDefByIdCaching(unitid)
if a>0 then
call WMem(a+0xB8,0)
endif
после создания единицу обратно пишешь, должно сработать

23

» WarCraft 3 / Пиратки и лицензия

Похожие вопросы:

ответ
Эти названия задаются в файле UI\WorldEditStrings. Достаточно один раз перевести там - и в редакторе это будет работать на всех картах.
прошу не накидываться с агрессией и криками "Лицензию не завезли?"
Лицензию не завезли? Подумай, чисто из уважения к близзам нужно иметь лицензию.
Ниже прикреплён WorldEditStrings из версии 1.26а.

23

» WarCraft 3 / Триггеры

Похожие вопросы:

ответ
Вам сюда, господин хороший. Там есть ответы, практически, на все ваши вопросы.
ответ
спасибо, XGM Bot!
Нашел это - xgm.guru/p/blog-nvc123/ur1-3
ответ
Собственные попытки в студию, что не получается?
Напомним - ЭТО НЕ СТОЛ ЗАКАЗОВ, здесь задают вопросы про реализацию тех или иных вопросов, спрашивают про ошибки, оптмизацию, отдельные функции. Я не увидел в вашем вопросе ничего кроме невнятного описания механики способности, " вокргу кого то там огненные столбы возникают, и еще порча"...
ответ
Filius Dei, во вредные советы подъехали...
Русификатор очень поможет тем кто собрался ломануть чужую карту и сделать её мод, прям ваще жир...
Потом нубам вроде сударя не стоит бежать ломать чужую карту, чето там пытатся копировать - это все бесполезно, недавно был похожий вопрос - помогите взломать карту за вознаграждение, карту сломали - ну а дальше что? Он неспособен ничего сделать потому что просто не понимает как?
Играя в некую карту вы мните себя великими балансерами и картоделами, мол да чё там, шяс подправлю пару значений и все будет норм - нет не будет, это не так просто как может показаться, без понимания устройства карты и знания Jass вам нечего там делать, вы тупо ничего не сможете изменить, да даже скопировать и вставить!
Помните что без труда не выловишь и рыбку из пруда, т.е изи способов в 1 кнопку взять и запилить чужую карту так как вам хочется или вдруг стащить всех героев себе в карту нет, а уж теболее не случится так что вам кто то возьмет и все это сделает вам за спасибо...

23

» WarCraft 3 / Общая система золота

Похожие вопросы:

ответ
Melissa:
Пик еври юнит ин 1100 ов позишн ов юнит
утекает группа + точка
Вместо тысячи слов - изучай наработку.
поставил кастомскрипты для удаления группы и группы игроков (destroygroup и destroyforce), но так после первого срабатывания триггера, дальше уже ничего не работает
ответ
По завершении строительства фермы увеличивай число получаемого игроком золота (переменная из масива), а при смерти - уменьшай. (соответственно, наоборот, для пехотинцев)
А вообще - фича бесполезная в рамках стандартного мили-режима варкрафта. Слишком профитно уходить в экономику.

23

» WarCraft 3 / Триггерные заклинания

Похожие вопросы:

ответ
Всем спасибо, проблему решил за счет проверки на цвет/номер игрока как индекс в массиве переменных. Все работает как запланировано.
Вопрос вдогонку: как можно задавать сам индекс переменной-массива?)
З.Ы. Массивы конечно зло, но другого способа хранить инфо по одному спеллу, не используя множество переменных - пока не умею.
ответ
Заклинание "Подчинение" или "Очарование"(зависит от перевода) или "Charm" в английской версии.
ответ
Pingvinromeo, проблема в том что ты фигню творишь
если спел применён в точку то точка есть
перемещение это 1 действие
за это время точка не исчезнет
короче пруфы того что не работает
ответ
  1. Для этого есть xgm.guru/p/wc3/needspells
  2. Рекомендую прочитать статьи по этому поводу.
3.
  1. Или такой пример
local unit c = GetTriggerUnit()
local unit tg = GetSpellTargetUnit()
//local real x1 = GetUnitState(c, UNIT_STATE_MAX_LIFE )
//local real x2 = GetUnitState(c, UNIT_STATE_MAX_MANA )
//local real x3 = GetUnitState(c, UNIT_STATE_MANA )
//local real z = I2R(GetHeroAgi(c, TRUE ))
//local real z1 = I2R(GetHeroAgi(c, TRUE ))
//local real z2 = I2R(GetHeroStr(c, TRUE ))
//local real z3 = I2R(GetHeroInt(c, TRUE ))
local real zall = I2R(GetHeroInt(c, TRUE ) + GetHeroStr(c, TRUE ) + GetHeroAgi(c, TRUE ))
call UnitDamageTarget( c, tg, zall, true, true, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS )
set c = null
set tg = null
И вообще сформулируйте вопрос правильнее..

23

» WarCraft 3 / Требуется помощь!

Похожие вопросы:

ответ
Интелект-целочисленная
Урон-реальная(дробная)
Конвертируй I2R. Ща скрин сделаю
prntscr.com/2fuiuo (Прошу прощения, если этот сайт не поддерживается XGM)
вот так получится
ответ
Nikitos6, проверь галочки во вкладке "Вид"
ответ
Нашёл!! Оказывается нужно было в конце пути дописать ".mdx"
ответ
Используй GMax, тот же самый 3ds max, только бесплатный.

23

» WarCraft 3 / Предметы для классов

Похожие вопросы:

ответ
Писать для них искусственный интеллект. В базе была статья про создание ИИ для героев, но куда-то делась. Попробую найти.
UPD: Вот, восстановили, была недоступна из-за ошибки базы.
Правда конкретно про предметы там нет, но можно догадаться на примере того, как реализованы другие действия.
ответ
закрыт по таймауту
ответ
если классов очень много сделай как я . пишешь название предметов так
+1d_Железный молот - что же всё это означает
проверяешь имя предмета и substring ловишь первые 3 значения
+-озночает что предмет классовый
1-уменя означал уровень предмета для тебя можешь удалить
d-означает какой класс может его поднять
ну или красевей название типо +ABS Железный меч ну тему ты уловил думаю

23

» WarCraft 3 / Сохранения в мультиплеере

Похожие вопросы:

ответ
Ну как бы там все одно да потому, код тот же что я описал выше, вот только проверять все надо в МУИ это раз, два время затраченное на синхронизацию может быть пипец каким большим...
function Trig_SyncStr_Actions takes nothing returns nothing
    local string splayer = null
    local player pl = Player(0)
    
    if GetLocalPlayer() == pl then
        call StoreString( udg_Data, "A", "B", "твоя строка!" )
    endif

    call TriggerSyncReady()
    
    if GetLocalPlayer) == pl  then
        call SyncStoredString( udg_Data, "A", "B"  )
    endif

    call TriggerSleepAction( 2.00 )
    
    call TriggerSyncReady()
    
    set splayer = GetStoredString( udg_Data, "A", "B" ) // выгрузи строку из кеша в локалку и делай с ней что хочешь
    
endfunction

//===========================================================================
function InitTrig_SyncStr takes nothing returns nothing
    set gg_trg_SyncStr = CreateTrigger(  )
    call TriggerAddAction( gg_trg_SyncStr, function Trig_SyncStr_Actions )
endfunction
Триггер запускаем ExecuteTrigger а "Твоя строка" заменяется на глобальную переменную.

23

» WarCraft 3 / Больше одного героя (одного типа).

Похожие вопросы:

ответ
закрыт по таймауту
ответ
глобальный массив не нужен. сохраняй группу в хэш-таблицу на хэндл героя, потом загружай ее когда надо. у каждого героя будет своя группа
вот пример, молот бурь съедает юнита а удар грома ставит всех юнитов обратно
ответ
Proshel_Doty, иди учи тер вер
если тебя не устраивает то как работает здравый смысл то убей себя
если тебе повезёт то ты переродишься в мире который тебя устраивает
если хочешь чтобы срабатывала каждые 5 раз то это не случайность а тупо счётчик

23

» WarCraft 3 / Анимация юнита

Похожие вопросы:

ответ
AddUnitAnimationProperties(u,null,true)
SetUnitAnimationByIndex(u,8)
1 это прописываешь там де обьявляешь переменные после обьявления юнита
2 это прописываешь когда те анимация нужна поэкспериментируй от 0 до 30

а чтобы поднять это дело в воздух
UnitAddAbility(u, 'Arav')
UnitRemoveAbility(u,'Arav')
SetUnitFlyHeight(u,150,0)
ответ
gabriel_fisher, скорее всего, тебе нужны анимационные теги
теги бывают разные: alternate, gold, lumber, defend, flesh и др
например, у рабочего есть анимации attack, walk, death и если ему добавить тег lumber, тогда вместо этих анимаций будут проигрываться attack lumber, walk lumber и death lumber соответственно.
Теги можно добавлять/убирать тригерно
Анимация - Add/Remove Animation Tag
или с помощью jass
native AddUnitAnimationProperties takes unit whichUnit, string animProperties, boolean add returns nothing
Также теги можно добавлять в Редакторе Объектов
Графика - Нужная анимация
ответ
Suite, вот только придётся каждый раз вручную юзать этот спелл
SсRealm, ты вопрос прочти прежде чем писать всякий бред
нормальным способом момент добычи отловить нельзя
недавно кидали костыль позволяющий отловить удар по дереву но он тут не особо поможет
ибо анимации будут перебивать друг друга
в общем как и сказал Suite меняй это в самой модели
ответ
Переименуй анимацию в модели в например Stand Alternate и 1) и добавляй соответствующий тег или 2) проигрывай анимацию по индексу.
ответ
странно, но в любом случае, я снова дал не ту, эта именно обновляет скин - мороз, оживление, вот это всё пересчитывает. Вот функция смены модели:

function ChangeUnitModelTo takes unit u, string modelpath returns nothing
	local integer a
	local integer s
	set LastConvertedHandle=ConvertHandle(u)
	if LastConvertedHandle>0 then
		set a=RMem(LastConvertedHandle)+0x88
		if a>0 then
			set a=RMem(a)
			if a>0 then
				set s=GetStringAddress(modelpath)
				call CallThisCallWith3Args(a,LastConvertedHandle,s,1)
			endif
		endif
	endif
endfunction

23

» WarCraft 3 / Система заданий

Похожие вопросы:

ответ
GF RaiseD:
Нашёл систему, где звук передаётся в таймер, который истекает через 0 секунд. В результате один и тот же звук может проигрываться несколько раз без всяких проблем. В инетике пишут мол это такой баг движка.
ответ
Можно:
  • Создать проект, пройти модерацию и добавить в него ресурс с вакансией — он появится в ленте ресурсов.
  • Написать в свой блог, запись будет в ленте блогов, соответственно.
  • Обратиться сюда (но этот ресурс, вроде, не особо активен.
Но в «Вопросы» писать не надо.
ответ
Нестандартная арена.

23

» WarCraft 3 / задание для одного игрока

Похожие вопросы:

ответ
что именно в циклах тебе непонятно?
ответ
локально менять модельку юниту
юнит будет видим всем но для всех кроме красного игрока у него не будет модели и узнать что там юнит можно будет лишь по хпбару либо выбрав рамочкой этого юнита
иначе никак
ответ
Steal nerves, для такой системы достаточно локалка + вейт
и ненужны никакие массивы и хэштаблицы
локалки как раз обеспечивают муи

23

» WarCraft 3 / У всех так?

Похожие вопросы:

ответ
Отношения игроков можно менять триггерно. Игрок -> Set alliance или Игрок -> Set aspect of alliance.
ответ
бд
если во время атаки то через событие юнит получает урон
иначе никак
ответ
Поскольку его не пугает наличие большого влияния промахов на геймплей - скорее всего он делает рпг. Имхо в рпг всегда клево смотрятся тексттаги полученного урона, для создания которых необходимы триггеры на отлов получения урона. А отлавливаемый урон - можно и прохилить.
Для прохила(и вообще всех манипуляций с задержкой в 0.00 сек) лично я юзаю такие костыли:
Либа здесь только для доп табуляции. Я за чистый жасс + дефайны.
library ZeroTimeEvent

    globals
        constant integer ZTEArraySize = 64//Even 32 is alot, 64 is too much! Exactly what I need!
        timer Zero//Used for 0. sec uses
        integer ZTECurrent = 0
        unit array ZTEUnits[ZTEArraySize]
        integer array ZTEIntegers[ZTEArraySize]
        real array ZTEReals[ZTEArraySize]
        trigger array ZTETriggers[ZTEArraySize]
    endglobals
    
    function ZeroTimeEvent takes nothing returns nothing
            loop
                set  ZTECurrent = ZTECurrent - 1
                call TriggerExecute( ZTETriggers[ZTECurrent] )
                exitwhen ZTECurrent < 1
            endloop
    endfunction
    
    #define ZTEAddUnit(u) = {
        set  ZTEUnits[ZTECurrent] = u
    }
    
    #define ZTEAddInteger(i) = {
        set  ZTEIntegers[ZTECurrent] = i
    }
    
    #define ZTEAddReal(r) = {
        set  ZTEReals[ZTECurrent] = r
    }
    
    #define ConfirmZTE(trig) = {
        set  ZTETriggers[ZTECurrent] = trig
        set  ZTECurrent = ZTECurrent + 1
        call TimerStart( Zero, ZeroTime, false, function ZeroTimeEvent )
    }
    
    
    
endlibrary
Пример использования
#define UnitRemoveForceAttack(u) = {
    call UnitAddAbility( u, 'Abun' )
    call UnitRemoveAbility( u, 'Abun' )
         ZTEAddUnit(u)
         ConfirmZTE(CheckIfUnitHasA002)
}
Минус такой системы в необходимости создавать триггер для каждого блока кода, т.к. массивы блоков кода запрещены
ответ
На карте нет ни одной декорации, нижняя поверхность collision box которой не погружена в террейн целиком, так что можно предположить, что нижняя поверхность попросту не обсчитывается физической моделью.
Из всего этого я могу сделать вывод, что в каждой декорации дополнительно к её координатам хранится только длинна стороны её collision box (вернее, её половина)
я уже точно не помню но как припомнил там суть что идёт евент входа в регион соответсвенно регион дефайнит ХУ оси и отдельно есть мин/макс екстенды этого объекта и поидеи всё. юнит входит в регион чекается где он. скорее всего в движке движения юнита есть "потолок" и "пол"
function Trig_Doodads_Actions takes nothing returns nothing
set ax=35
call CreateHWRectBR(-8174,-3900,-7914,-3639,1054,1679)
это я для теста делал т.е. по этому "в 3д" можно бегать (спиральная лестница)
if xux.hwmaxz!=0 and xux.hwmaxz-rr>xux.Zsize then//mhg>xux.Zsize then
это чек на сабж потолка
мне просто лень настраиваеть ворледитор и тулы что бы запустить АОС с той лестницей и сделать видео с демо.
с другой стороны возможно позже и сделаю.
система максимально простая что бы вц3 не обсирался там жасс и так еле дышит.
ответ
Можно просто пикать всех юнитов в регионе, или ещё красивее
GetEnumRange('Лечилка')

23

» WarCraft 3 / все про мод

Похожие вопросы:

ответ
cJass, vJass и Jass2 - разные концы одной палки. Но после освоения структур, которые есть в vJass и освоения синтаксиса cJass ты вполне сможешь быстро освоить любой язык C-семейства.
ответ
Закрыто.

23

» WarCraft 3 / Свойства материалов

Похожие вопросы:

ответ
Смотри какой принцип описания тех или иных объектов и делай так же, не забывай про нумерацию объектов и подправку их количества в нужных местах.
Считаю нужным написать по этому поводу Золотую Фразу Академии — в базе есть статья об этом.
ответ
Ааа, ну тогда смотри
не_кликабельность Сларка делается так
а - его морфят в юнит без модельки
б - ему дают москитов и отбирают (что бы на него нельзя было кликнуть, но можно было выделить)
в - все события "атакован" приводятся к действию "стоп", если это Сларк
г - аура регена игнорирует то что Сларка видят
у тебя на пути стоит пункт Б, т.к. что бы умные люди не заменяли себе пустую модельку (пункт А) на нормальную и не могли на неё в итоге тыкать... Так что в итоге - ты можешь её заменить, но тыкнуть всё равно не сможешь... шах и мат

23

» WarCraft 3 / Помогите разобраться

Похожие вопросы:

ответ
~16GB:
nvc123,
у меня подобным образом сделаны почти все спелы моей карте и всё ок. Если бы ты сделал карты, в которые хоть кто-то играет, то тебя можно было бы ещё слушать, а так. В доте тоже вон всё на хэше и триггерах и всё ок. Ещё и cjass предлагаешь.
ответ
Sergey105, здесь здесь пример со стеком, думаю там есть то, что тебе нужно
ответ
Да у тебя куча дыр, во-первых ты не запустил триггер 115 области lumber direction, и оно соответственно не реагирует на событие. Во-вторых перепроверь gold проверку условия на да или нет в той карте которую ты отправил стоит нет
А золото не движется потому что ты ожидание 0,5 сек поставил а область в милисекунде от изначальной то есть триггер не успевает запуститься
ответ
изменение уровня способности у мертвого юнита. апгрейдом или триггерно, неважно. скорее всего, способность в спелбуке
проверь AGg0
ответ
Воу... Джаз не обязательно изучать, всё это можно сделать и на ГУИ, тем более такую простую способность. На этом сайте есть тема "Заклинания на заказ". Заказывай, жди, получай, изучай. Если прям горит, могу сделать для тебя сам.